home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 22 / CU Amiga Magazine's Super CD-ROM 22 (1998)(EMAP Images)(GB)[!][issue 1998-05].iso / PowerPC / Programming / PPCSmallEiffel / bin_c / compile_to_jvm40.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  55.4 KB  |  1,788 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_jvm.h"
  9. /*No:NATIVE_INLINE_WITH_CURRENT.jvm_add_method_for_procedure*/
  10. /*No:NATIVE_INLINE_WITH_CURRENT.jvm_add_method_for_function*/
  11. /*No:NATIVE_INLINE_WITH_CURRENT.jvm_mapping_procedure*/
  12. /*No:NATIVE_INLINE_WITH_CURRENT.jvm_define_procedure*/
  13. /*No:NATIVE_INLINE_WITH_CURRENT.use_current*/
  14. /*No:NATIVE_INLINE_WITH_CURRENT.jvm_define_function*/
  15. /*No:NATIVE_INLINE_WITH_CURRENT.fatal_error*/
  16. void r240fe_c2jvm(T0* a1){
  17. r683add_position(r228target_position(((T228*)(oBC364jvm))));
  18. r683add_position(X496start_position(a1));
  19. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_845);
  20. r683fatal_error(((T683*)(oBC364eh)),b1);
  21. }/*]*/
  22. }
  23. /*No:NATIVE_INLINE_WITH_CURRENT.jvm_mapping_function*/
  24. void r913get_started(T913* C,T0* a1){
  25. int _i=0;
  26. _i=1;
  27. while (!((_i)>((((T764*)((T764*)((((T913*)C))->_list/*0*/))))->_upper/*8*/))) {
  28. r153add_into(((T153*)(r764item(((T764*)((((T913*)C))->_list/*0*/)),_i))),a1);
  29. _i=(_i)+(1);
  30. }
  31. }
  32. /*No:FEATURE_CLAUSE_LIST.make*/
  33. /*No:FEATURE_CLAUSE_LIST.list*/
  34. /*No:FEATURE_CLAUSE_LIST.add_last*/
  35. int r870result_is_current(T870* C){
  36. int R=0;
  37. T0* _e=NULL;
  38. _e=r870body_one_result(C);
  39. /*IF*/if (((_e)!=((void*)(NULL)))&&(((((T870*)C))->_local_vars/*52*/)==((void*)(NULL)))) {
  40. /*IF*/if (X662is_current(_e)) {
  41. R=1;
  42. }
  43. /*FI*/}
  44. /*FI*/return R;
  45. }
  46. /*No:RUN_FEATURE_4.arguments*/
  47. int r870direct_call(T870* C){
  48. int R=0;
  49. T0* _rf4=NULL;
  50. T0* _args=NULL;
  51. T0* _c=NULL;
  52. T0* _e=NULL;
  53. _e=r870body_one_result(C);
  54. /*IF*/if ((((_e)!=((void*)(NULL)))&&(((((T870*)C))->_arguments/*20*/)==((void*)(NULL))))&&(((((T870*)C))->_local_vars/*52*/)==((void*)(NULL)))) {
  55. _c=_e;
  56. if(NULL!=(_c))switch(((T0*)_c)->id) {
  57. case 121: case 890: case 414: case 453: case 180: case 460: case 932: case 990: case 253: case 278: case 767: case 760: case 915: case 534: case 999: case 517: case 520: case 557: case 72: case 574: case 90: case 57: case 313: case 487: case 492: case 655: case 112: 
  58. break;
  59. default:
  60. _c=NULL;
  61. };/*IF*/if ((_c)!=((void*)(NULL))) {
  62. /*IF*/if (X662is_current(/*X295*/((T0*)(((T121*)((T121*)_c)))->_target/*12*/))) {
  63. _rf4=X295run_feature(_c);
  64. if(NULL!=(_rf4))switch(((T0*)_rf4)->id) {
  65. case 870: 
  66. break;
  67. default:
  68. _rf4=NULL;
  69. };/*IF*/if ((_rf4)!=((void*)(NULL))) {
  70. _args=X295arguments(_c);
  71. /*IF*/if ((_args)==((void*)(NULL))) {
  72. R=1;
  73. }
  74. else {
  75. R=r431is_static(((T431*)_args));
  76. }
  77. /*FI*/}
  78. /*FI*/}
  79. /*FI*/}
  80. /*FI*/}
  81. /*FI*/return R;
  82. }
  83. /*No:RUN_FEATURE_4.C_result_is_current*/
  84. int r870dc_pco1(T870* C){
  85. int R=0;
  86. T0* _rf6=NULL;
  87. T0* _c=NULL;
  88. _c=r870body_one_dc_pco(C);
  89. /*IF*/if (((_c)!=((void*)(NULL)))&&(X662is_current(/*X295*/((T0*)(((T121*)((T121*)_c)))->_target/*12*/)))) {
  90. _rf6=X295run_feature(_c);
  91. if(NULL!=(_rf6))switch(((T0*)_rf6)->id) {
  92. case 868: 
  93. break;
  94. default:
  95. _rf6=NULL;
  96. };/*IF*/if ((_rf6)!=((void*)(NULL))) {
  97. R=!(r868use_current(((T868*)_rf6)));
  98. }
  99. /*FI*/}
  100. /*FI*/return R;
  101. }
  102. /*No:RUN_FEATURE_4.C_dc_pco2*/
  103. T0* r870body_one_result_dca(T870* C){
  104. T0* R=NULL;
  105. T0* _r=NULL;
  106. T0* _rf=NULL;
  107. T0* _rf2=NULL;
  108. T0* _c0c=NULL;
  109. T0* _c=NULL;
  110. _c=r870body_one_result(C);
  111. if(NULL!=(_c))switch(((T0*)_c)->id) {
  112. case 121: case 890: case 414: case 453: case 180: case 460: case 932: case 990: case 253: case 278: case 767: case 760: case 915: case 534: case 999: case 517: case 520: case 557: case 72: case 574: case 90: case 57: case 313: case 487: case 492: case 655: case 112: 
  113. break;
  114. default:
  115. _c=NULL;
  116. };/*IF*/if ((_c)!=((void*)(NULL))) {
  117. _c0c=/*X295*/((T0*)(((T121*)((T121*)_c)))->_target/*12*/);
  118. if(NULL!=(_c0c))switch(((T0*)_c0c)->id) {
  119. case 487: 
  120. break;
  121. default:
  122. _c0c=NULL;
  123. };/*IF*/if ((_c0c)!=((void*)(NULL))) {
  124. /*IF*/if (X662is_current((((T487*)((T487*)_c0c)))->_target/*12*/)) {
  125. _rf2=(((T487*)((T487*)_c0c)))->_run_feature/*20*/;
  126. if(NULL!=(_rf2))switch(((T0*)_rf2)->id) {
  127. case 820: 
  128. break;
  129. default:
  130. _rf2=NULL;
  131. };/*IF*/if ((_rf2)!=((void*)(NULL))) {
  132. _r=(((T355*)((T355*)(r820run_class(((T820*)_rf2))))))->_running/*12*/;
  133. /*IF*/if (((_r)!=((void*)(NULL)))&&((r396count(((T396*)_r)))==(1))) {
  134. _rf=X295run_feature(_c);
  135. /*IF*/if ((_rf)!=((void*)(NULL))) {
  136. _r=(((T355*)((T355*)(X496run_class(_rf)))))->_running/*12*/;
  137. /*IF*/if (((_r)!=((void*)(NULL)))&&((r396count(((T396*)_r)))==(1))) {
  138. R=_c;
  139. }
  140. /*FI*/}
  141. else {
  142. R=_c;
  143. }
  144. /*FI*/}
  145. /*FI*/}
  146. /*FI*/}
  147. /*FI*/}
  148. /*FI*/}
  149. /*FI*/return R;
  150. }
  151. /*No:RUN_FEATURE_4.ucs_true*/
  152. int r870dc_pco2(T870* C){
  153. int R=0;
  154. T0* _rf6=NULL;
  155. T0* _c2=NULL;
  156. T0* _c1=NULL;
  157. _c1=r870body_one_dc_pco(C);
  158. /*IF*/if ((_c1)!=((void*)(NULL))) {
  159. _c2=/*X295*/((T0*)(((T121*)((T121*)_c1)))->_target/*12*/);
  160. if(NULL!=(_c2))switch(((T0*)_c2)->id) {
  161. case 121: case 890: case 414: case 453: case 180: case 460: case 932: case 990: case 253: case 278: case 767: case 760: case 915: case 534: case 999: case 517: case 520: case 557: case 72: case 574: case 90: case 57: case 313: case 487: case 492: case 655: case 112: 
  162. break;
  163. default:
  164. _c2=NULL;
  165. };/*IF*/if ((_c2)!=((void*)(NULL))) {
  166. _rf6=X295run_feature(_c2);
  167. if(NULL!=(_rf6))switch(((T0*)_rf6)->id) {
  168. case 868: 
  169. break;
  170. default:
  171. _rf6=NULL;
  172. };/*IF*/if ((((_rf6)!=((void*)(NULL)))&&(!(r868use_current(((T868*)_rf6)))))&&(X662is_current(/*X295*/((T0*)(((T121*)((T121*)_c2)))->_target/*12*/)))) {
  173. R=1;
  174. }
  175. /*FI*/}
  176. /*FI*/}
  177. /*FI*/return R;
  178. }
  179. void r870routine_mapping_jvm(T870* C){
  180. int _stack_level=0;
  181. int _idx=0;
  182. T0* _ct=NULL;
  183. T0* _rt=NULL;
  184. _ct=(((T870*)C))->_current_type/*4*/;
  185. r228push_target_as_target(((T228*)(oBC364jvm)));
  186. _stack_level=-((1)+(r228push_arguments(((T228*)(oBC364jvm)))));
  187. _rt=(((T870*)C))->_result_type/*24*/;
  188. /*IF*/if ((_rt)!=((void*)(NULL))) {
  189. _stack_level=(_stack_level)+(X291jvm_stack_space(_rt));
  190. }
  191. /*FI*/_idx=r95idx_methodref(((T95*)(oBC364constant_pool)),(T0*)C);
  192. r355jvm_invoke(((T355*)(X291run_class(_ct))),_idx,_stack_level);
  193. }
  194. /*No:RUN_FEATURE_4.rescue_compound*/
  195. /*No:RUN_FEATURE_4.actuals_clients*/
  196. T0* r870jvm_descriptor(T870* C){
  197. T0* R=NULL;
  198. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC496tmp_jvm_descriptor)))))->_count)=(0);
  199. /*]*/
  200. /*[IRF3.4update_tmp_jvm_descriptor*/r870routine_update_tmp_jvm_descriptor(C);
  201. /*]*/
  202. R=oBC496tmp_jvm_descriptor;
  203. return R;
  204. }
  205. /*No:RUN_FEATURE_4.C_value_reader*/
  206. int r870empty_or_null_body(T870* C){
  207. int R=0;
  208. T0* _rb=NULL;
  209. _rb=(((T870*)C))->_routine_body/*32*/;
  210. /*IF*/if ((((_rb)==((void*)(NULL)))||(/*(IRF4.7empty_or_null_body*/((((T592*)((T592*)_rb)))->_list/*8*/)==(NULL)/*)*/))&&(((((T870*)C))->_local_vars/*52*/)==((void*)(NULL)))) {
  211. C->_static_value_mem=0;
  212. C->_is_static_flag=1;
  213. R=1;
  214. }
  215. /*FI*/return R;
  216. }
  217. void r870method_info_start(T870* C){
  218. int _flags=0;
  219. _flags=X291jvm_method_flags((((T870*)C))->_current_type/*4*/);
  220. r506start(((T506*)(oBC364method_info)),_flags,X776to_key((((T870*)C))->_name/*16*/),r870jvm_descriptor(C));
  221. }
  222. /*No:RUN_FEATURE_4.ucs_in_computation*/
  223. void r870routine_update_tmp_jvm_descriptor(T870* C){
  224. T0* _rt=NULL;
  225. T0* _ct=NULL;
  226. r7extend(((T7*)(oBC496tmp_jvm_descriptor)),'\50');
  227. _ct=(((T870*)C))->_current_type/*4*/;
  228. X291jvm_target_descriptor_in(_ct,oBC496tmp_jvm_descriptor);
  229. /*IF*/if (((((T870*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  230. r31jvm_descriptor_in(((T31*)((((T870*)C))->_arguments/*20*/)),oBC496tmp_jvm_descriptor);
  231. }
  232. /*FI*/_rt=(((T870*)C))->_result_type/*24*/;
  233. /*IF*/if ((_rt)==((void*)(NULL))) {
  234. r7append(((T7*)(oBC496tmp_jvm_descriptor)),((T0*)ms153_470));
  235. }
  236. else {
  237. _rt=X291run_type(_rt);
  238. r7extend(((T7*)(oBC496tmp_jvm_descriptor)),'\51');
  239. X291jvm_descriptor_in(_rt,oBC496tmp_jvm_descriptor);
  240. }
  241. /*FI*/}
  242. void r870make(T870* C,T0* a1,T0* a2,T0* a3){
  243. C->_current_type=a1;
  244. C->_name=a2;
  245. C->_base_feature=a3;
  246. r199put(((T199*)((((T355*)((T355*)(r870run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
  247. r604incr_magic_count(((T604*)(oBC364small_eiffel)));
  248. C->_use_current_state=1005;
  249. r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
  250. r870initialize(C);
  251. r604pop(((T604*)(oBC364small_eiffel)));
  252. }
  253. void r870std_compute_use_current(T870* C){
  254. /*IF*/if (((((T870*)C))->_use_current_state/*44*/)==(1006)) {
  255. /*IF*/if (((((T870*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  256. /*IF*/if (r567use_current(((T567*)((((T870*)C))->_require_assertion/*28*/)))) {
  257. C->_use_current_state=1004;
  258. }
  259. /*FI*/}
  260. /*FI*/}
  261. /*FI*//*IF*/if (((((T870*)C))->_use_current_state/*44*/)==(1006)) {
  262. /*IF*/if (((((T870*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  263. /*IF*/if (r592use_current(((T592*)((((T870*)C))->_routine_body/*32*/)))) {
  264. C->_use_current_state=1004;
  265. }
  266. /*FI*/}
  267. /*FI*/}
  268. /*FI*//*IF*/if (((((T870*)C))->_use_current_state/*44*/)==(1006)) {
  269. /*IF*/if (((((T870*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  270. /*IF*/if (r633use_current(((T633*)((((T870*)C))->_ensure_assertion/*36*/)))) {
  271. C->_use_current_state=1004;
  272. }
  273. /*FI*/}
  274. /*FI*/}
  275. /*FI*//*IF*/if (((((T870*)C))->_use_current_state/*44*/)==(1006)) {
  276. C->_use_current_state=1003;
  277. }
  278. /*FI*/}
  279. /*No:RUN_FEATURE_4.name*/
  280. int r870arg_count(T870* C){
  281. int R=0;
  282. /*IF*/if (((((T870*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  283. R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T870*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  284. }
  285. /*FI*/return R;
  286. }
  287. int r870attribute_reader(T870* C){
  288. int R=0;
  289. T0* _rf2=NULL;
  290. T0* _c0=NULL;
  291. T0* _e=NULL;
  292. _e=r870body_one_result(C);
  293. /*IF*/if (((_e)!=((void*)(NULL)))&&(((((T870*)C))->_local_vars/*52*/)==((void*)(NULL)))) {
  294. _c0=_e;
  295. if(NULL!=(_c0))switch(((T0*)_c0)->id) {
  296. case 180: case 990: case 767: case 72: case 487: 
  297. break;
  298. default:
  299. _c0=NULL;
  300. };/*IF*/if ((_c0)!=((void*)(NULL))) {
  301. /*IF*/if (X662is_current(/*X752*/((T0*)(((T180*)((T180*)_c0)))->_target/*12*/))) {
  302. _rf2=X752run_feature(_c0);
  303. if(NULL!=(_rf2))switch(((T0*)_rf2)->id) {
  304. case 820: 
  305. break;
  306. default:
  307. _rf2=NULL;
  308. };/*IF*/if ((_rf2)!=((void*)(NULL))) {
  309. R=1;
  310. }
  311. /*FI*/}
  312. /*FI*/}
  313. /*FI*/}
  314. /*FI*/return R;
  315. }
  316. void r870routine_afd_check(T870* C){
  317. /*IF*/if (((((T870*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  318. r567afd_check(((T567*)((((T870*)C))->_require_assertion/*28*/)));
  319. }
  320. /*FI*//*IF*/if (((((T870*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  321. r592afd_check(((T592*)((((T870*)C))->_routine_body/*32*/)));
  322. }
  323. /*FI*//*IF*/if (((((T870*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  324. r633afd_check(((T633*)((((T870*)C))->_ensure_assertion/*36*/)));
  325. }
  326. /*FI*/}
  327. /*No:RUN_FEATURE_4.local_vars*/
  328. int r870dca(T870* C){
  329. int R=0;
  330. T0* _args=NULL;
  331. T0* _rf=NULL;
  332. T0* _c=NULL;
  333. _c=r870body_one_result_dca(C);
  334. /*IF*/if (((_c)!=((void*)(NULL)))&&(((((T870*)C))->_local_vars/*52*/)==((void*)(NULL)))) {
  335. _rf=X295run_feature(_c);
  336. /*IF*/if ((_rf)!=((void*)(NULL))) {
  337. /*IF*/if ((_rf)!=((void*)(C))) {
  338. _args=X295arguments(_c);
  339. /*IF*/if ((_args)==((void*)(NULL))) {
  340. R=(r870arg_count(C))==(0);
  341. }
  342. else {
  343. R=r431isa_dca_inline(((T431*)_args),(T0*)C,_rf);
  344. }
  345. /*FI*/}
  346. /*FI*/}
  347. /*FI*/}
  348. /*FI*/return R;
  349. }
  350. /*No:RUN_FEATURE_4.base_feature*/
  351. /*No:RUN_FEATURE_4.start_position*/
  352. T0* r870body_one_result(T870* C){
  353. T0* R=NULL;
  354. T0* _a=NULL;
  355. T0* _rb=NULL;
  356. _rb=(((T870*)C))->_routine_body/*32*/;
  357. /*IF*/if (((_rb)!=((void*)(NULL)))&&((r592count(((T592*)_rb)))==(1))) {
  358. _a=r592first(((T592*)_rb));
  359. if(NULL!=(_a))switch(((T0*)_a)->id) {
  360. case 629: 
  361. break;
  362. default:
  363. _a=NULL;
  364. };/*IF*/if ((_a)!=((void*)(NULL))) {
  365. /*IF*/if (X662is_result((((T629*)((T629*)_a)))->_left_side/*8*/)) {
  366. R=(((T629*)((T629*)_a)))->_right_side/*12*/;
  367. }
  368. /*FI*/}
  369. /*FI*/}
  370. /*FI*/return R;
  371. }
  372. int r870jvm_max_locals(T870* C){
  373. int R=0;
  374. R=X291jvm_stack_space((((T870*)C))->_current_type/*4*/);
  375. /*IF*/if (((((T870*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  376. R=(R)+(r31jvm_stack_space(((T31*)((((T870*)C))->_arguments/*20*/))));
  377. }
  378. /*FI*//*IF*/if (((((T870*)C))->_local_vars/*52*/)!=((void*)(NULL))) {
  379. R=(R)+(r620jvm_stack_space(((T620*)((((T870*)C))->_local_vars/*52*/))));
  380. }
  381. /*FI*//*IF*/if (((((T870*)C))->_result_type/*24*/)!=((void*)(NULL))) {
  382. R=(R)+(X291jvm_stack_space((((T870*)C))->_result_type/*24*/));
  383. }
  384. /*FI*/return R;
  385. }
  386. int r870jvm_result_offset(T870* C){
  387. int R=0;
  388. R=X291jvm_stack_space((((T870*)C))->_current_type/*4*/);
  389. /*IF*/if (((((T870*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  390. R=(R)+(r31jvm_stack_space(((T31*)((((T870*)C))->_arguments/*20*/))));
  391. }
  392. /*FI*//*IF*/if (((((T870*)C))->_local_vars/*52*/)!=((void*)(NULL))) {
  393. R=(R)+(r620jvm_stack_space(((T620*)((((T870*)C))->_local_vars/*52*/))));
  394. }
  395. /*FI*/return R;
  396. }
  397. /*No:RUN_FEATURE_4.ensure_assertion*/
  398. int r870is_exported_in(T870* C,T0* a1){
  399. int R=0;
  400. R=r636gives_permission_to(((T636*)(r870clients(C))),a1);
  401. return R;
  402. }
  403. void r870jvm_define_opening(T870* C){
  404. T0* _t=NULL;
  405. /*IF*/if (((((T870*)C))->_result_type/*24*/)!=((void*)(NULL))) {
  406. _t=X291run_type((((T870*)C))->_result_type/*24*/);
  407. X291jvm_initialize_local(_t,r870jvm_result_offset(C));
  408. }
  409. /*FI*//*IF*/if (((((T870*)C))->_local_vars/*52*/)!=((void*)(NULL))) {
  410. r620jvm_initialize(((T620*)((((T870*)C))->_local_vars/*52*/)));
  411. }
  412. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  413. /*IF*/if (((((T870*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  414. r633compile_to_jvm_old(((T633*)((((T870*)C))->_ensure_assertion/*36*/)));
  415. }
  416. /*FI*/}
  417. /*FI*//*IF*/if (((((T870*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  418. r567compile_to_jvm(((T567*)((((T870*)C))->_require_assertion/*28*/)));
  419. }
  420. /*FI*/}
  421. void r870compute_use_current(T870* C){
  422. /*IF*/if ((X291is_reference((((T870*)C))->_current_type/*4*/))&&(r590no_check(((T590*)(oBC364run_control))))) {
  423. C->_use_current_state=1004;
  424. }
  425. else {
  426. r870std_compute_use_current(C);
  427. }
  428. /*FI*/}
  429. /*No:RUN_FEATURE_4.result_type*/
  430. /*No:RUN_FEATURE_4.jvm_field_or_method*/
  431. int r870jvm_argument_offset(T870* C,T0* a1){
  432. int R=0;
  433. R=X291jvm_stack_space((((T870*)C))->_current_type/*4*/);
  434. R=(R)+(r31jvm_offset_of(((T31*)((((T870*)C))->_arguments/*20*/)),a1));
  435. return R;
  436. }
  437. /*No:RUN_FEATURE_4.in_line_status*/
  438. /*No:RUN_FEATURE_4.C_a_eq_neq*/
  439. int r870a_eq_neq(T870* C){
  440. int R=0;
  441. T0* _e=NULL;
  442. T0* _rf=NULL;
  443. T0* _c=NULL;
  444. _c=r870body_one_result_dca(C);
  445. /*IF*/if (((_c)!=((void*)(NULL)))&&(((((T870*)C))->_local_vars/*52*/)==((void*)(NULL)))) {
  446. _rf=X295run_feature(_c);
  447. /*IF*/if (((_rf)==((void*)(NULL)))&&((X295arg_count(_c))==(1))) {
  448. _e=r431expression(((T431*)(X295arguments(_c))),1);
  449. {int z1=X662isa_dca_inline_argument(_e);
  450.  
  451. if((0==z1)){
  452. }
  453.  else 
  454. if((-1==z1)){
  455. R=(r870arg_count(C))==(0);
  456. }
  457.  else{R=(r870arg_count(C))==(1);
  458. }}
  459. }
  460. /*FI*/}
  461. /*FI*/return R;
  462. }
  463. int r870is_static(T870* C){
  464. int R=0;
  465. /*IF*/if (r870isa_in_line(C)) {
  466. R=(((T870*)C))->_is_static_flag/*64*/;
  467. }
  468. /*FI*/return R;
  469. }
  470. int r870value_reader(T870* C){
  471. int R=0;
  472. T0* _c0=NULL;
  473. T0* _e=NULL;
  474. _e=r870body_one_result(C);
  475. /*IF*/if (((_e)!=((void*)(NULL)))&&(((((T870*)C))->_local_vars/*52*/)==((void*)(NULL)))) {
  476. _c0=_e;
  477. if(NULL!=(_c0))switch(((T0*)_c0)->id) {
  478. case 180: case 990: case 767: case 72: case 487: 
  479. break;
  480. default:
  481. _c0=NULL;
  482. };/*IF*/if ((((_c0)!=((void*)(NULL)))&&(X662is_current(/*X752*/((T0*)(((T180*)((T180*)_c0)))->_target/*12*/))))&&((X752run_feature(_c0))==((void*)(C)))) {
  483. r683add_position(X662start_position(_e));
  484. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_870);
  485. r683fatal_error(((T683*)(oBC364eh)),b1);
  486. }/*]*/
  487. }
  488.  else if (X662is_static(_e)) {
  489. R=1;
  490. C->_static_value_mem=X662static_value(_e);
  491. C->_is_static_flag=1;
  492. }
  493. /*FI*/}
  494. /*FI*/return R;
  495. }
  496. void r870add_client(T870* C,T0* a1){
  497. int _i=0;
  498. /*IF*/if (((((T870*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
  499. {T187*n=malloc(sizeof(*n));
  500. *n=M187;
  501. r187with_capacity(n,4);
  502. C->_actuals_clients=(T0*)n;
  503. }
  504. r187add_last(((T187*)((((T870*)C))->_actuals_clients/*12*/)),a1);
  505. }
  506. else {
  507. _i=r187fast_index_of(((T187*)((((T870*)C))->_actuals_clients/*12*/)),a1);
  508. /*IF*/if ((_i)>((((T187*)((T187*)((((T870*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
  509. r187add_last(((T187*)((((T870*)C))->_actuals_clients/*12*/)),a1);
  510. }
  511. /*FI*/}
  512. /*FI*/r355add_client(((T355*)(r870run_class(C))),a1);
  513. }
  514. /*No:RUN_FEATURE_4.require_assertion*/
  515. int r870isa_in_line(T870* C){
  516. int R=0;
  517. /*IF*/if (r590boost(((T590*)(oBC364run_control)))) {
  518. {int z1=(((T870*)C))->_in_line_status/*60*/;
  519.  
  520. if((-1==z1)){
  521. }
  522.  else 
  523. if((0==z1)){
  524. R=1;
  525. /*IF*/if (r870empty_or_null_body(C)) {
  526. C->_in_line_status=1;
  527. }
  528.  else if (r870value_reader(C)) {
  529. C->_in_line_status=2;
  530. }
  531.  else if (r870attribute_reader(C)) {
  532. C->_in_line_status=3;
  533. }
  534.  else if (r870result_is_current(C)) {
  535. C->_in_line_status=4;
  536. }
  537.  else if (r870direct_call(C)) {
  538. C->_in_line_status=5;
  539. }
  540.  else if (r870dca(C)) {
  541. C->_in_line_status=6;
  542. }
  543.  else if (r870a_eq_neq(C)) {
  544. C->_in_line_status=7;
  545. }
  546.  else if (r870dc_pco1(C)) {
  547. C->_in_line_status=8;
  548. }
  549.  else if (r870dc_pco2(C)) {
  550. C->_in_line_status=9;
  551. }
  552.  else if (r870direct_cse_call(C)) {
  553. C->_in_line_status=10;
  554. }
  555. else {
  556. C->_in_line_status=-(1);
  557. R=0;
  558. }
  559. /*FI*/}
  560.  else{R=1;
  561. }}
  562. }
  563. /*FI*/return R;
  564. }
  565. /*No:RUN_FEATURE_4.use_current_state*/
  566. T0* r870body_one_dc_pco(T870* C){
  567. T0* R=NULL;
  568. T0* _args=NULL;
  569. T0* _c=NULL;
  570. _c=r870body_one_result(C);
  571. if(NULL!=(_c))switch(((T0*)_c)->id) {
  572. case 121: case 890: case 414: case 453: case 180: case 460: case 932: case 990: case 253: case 278: case 767: case 760: case 915: case 534: case 999: case 517: case 520: case 557: case 72: case 574: case 90: case 57: case 313: case 487: case 492: case 655: case 112: 
  573. break;
  574. default:
  575. _c=NULL;
  576. };/*IF*/if ((((_c)!=((void*)(NULL)))&&(((((T870*)C))->_local_vars/*52*/)==((void*)(NULL))))&&(((((T870*)C))->_arguments/*20*/)==((void*)(NULL)))) {
  577. _args=X295arguments(_c);
  578. /*IF*/if (((_args)==((void*)(NULL)))||(r431is_static(((T431*)_args)))) {
  579. R=_c;
  580. }
  581. /*FI*/}
  582. /*FI*/return R;
  583. }
  584. int r870can_be_dropped(T870* C){
  585. int R=0;
  586. R=((((((((T870*)C))->_arguments/*20*/)==((void*)(NULL)))&&(((((T870*)C))->_local_vars/*52*/)==((void*)(NULL))))&&(((((T870*)C))->_require_assertion/*28*/)==((void*)(NULL))))&&(((((T870*)C))->_ensure_assertion/*36*/)==((void*)(NULL))))&&(((((T870*)C))->_rescue_compound/*40*/)==((void*)(NULL)));
  587. /*IF*/if (R) {
  588. /*IF*/if (((((T870*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  589. R=0;
  590. }
  591. /*FI*/}
  592. /*FI*/return R;
  593. }
  594. /*No:RUN_FEATURE_4.C_dca*/
  595. void r870jvm_define_closing(T870* C){
  596. /*IF*/if (r870use_current(C)) {
  597. }
  598. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  599. /*IF*/if (((((T870*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  600. r633compile_to_jvm(((T633*)((((T870*)C))->_ensure_assertion/*36*/)),1);
  601. }
  602. /*FI*/}
  603. /*FI*//*IF*/if (((((T870*)C))->_result_type/*24*/)!=((void*)(NULL))) {
  604. X291jvm_push_local((((T870*)C))->_result_type/*24*/,r870jvm_result_offset(C));
  605. }
  606. /*FI*/}
  607. /*No:RUN_FEATURE_4.mapping_jvm*/
  608. /*No:RUN_FEATURE_4.current_type*/
  609. /*No:RUN_FEATURE_4.C_empty_or_null_body*/
  610. T0* r870run_class(T870* C){
  611. T0* R=NULL;
  612. R=X291run_class((((T870*)C))->_current_type/*4*/);
  613. return R;
  614. }
  615. /*No:RUN_FEATURE_4.static_value_mem*/
  616. /*No:RUN_FEATURE_4.fz_19*/
  617. /*No:RUN_FEATURE_4.is_static_flag*/
  618. /*No:RUN_FEATURE_4.ucs_not_computed*/
  619. void r870fall_down(T870* C){
  620. T0* _rf=NULL;
  621. T0* _sub_name=NULL;
  622. T0* _sub_bc=NULL;
  623. T0* _current_bc=NULL;
  624. T0* _sub_rc=NULL;
  625. T0* _current_rc=NULL;
  626. int _i=0;
  627. T0* _running=NULL;
  628. _current_rc=X291run_class((((T870*)C))->_current_type/*4*/);
  629. _running=(((T355*)((T355*)_current_rc)))->_running/*12*/;
  630. /*IF*/if ((_running)!=((void*)(NULL))) {
  631. _current_bc=X291base_class((((T870*)C))->_current_type/*4*/);
  632. _i=(((T396*)((T396*)_running)))->_lower/*12*/;
  633. while (!((_i)>((((T396*)((T396*)_running)))->_upper/*8*/))) {
  634. _sub_rc=r396item(((T396*)_running),_i);
  635. /*IF*/if ((_sub_rc)!=((void*)(_current_rc))) {
  636. _sub_bc=X291base_class((((T355*)((T355*)_sub_rc)))->_current_type/*0*/);
  637. _sub_name=r605new_name_of(((T605*)_sub_bc),_current_bc,(((T870*)C))->_name/*16*/);
  638. _rf=r355get_feature(((T355*)_sub_rc),_sub_name);
  639. }
  640. /*FI*/_i=(_i)+(1);
  641. }
  642. }
  643. /*FI*/}
  644. /*No:RUN_FEATURE_4.routine_body*/
  645. /*No:RUN_FEATURE_4.C_attribute_reader*/
  646. /*No:RUN_FEATURE_4.C_direct_call*/
  647. /*No:RUN_FEATURE_4.ucs_false*/
  648. /*No:RUN_FEATURE_4.is_pre_computable*/
  649. T0* r870clients(T870* C){
  650. T0* R=NULL;
  651. T0* _bfbc=NULL;
  652. T0* _bc=NULL;
  653. /*IF*/if (((((T870*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
  654. _bc=X291base_class((((T870*)C))->_current_type/*4*/);
  655. _bfbc=(((T696*)((T696*)((((T870*)C))->_base_feature/*48*/))))->_base_class/*4*/;
  656. /*IF*/if ((_bc)==((void*)(_bfbc))) {
  657. R=(((T696*)((T696*)((((T870*)C))->_base_feature/*48*/))))->_clients/*24*/;
  658. }
  659. else {
  660. R=r605clients_for(((T605*)_bc),(((T870*)C))->_name/*16*/);
  661. }
  662. /*FI*/C->_clients_memory=R;
  663. }
  664. else {
  665. R=(((T870*)C))->_clients_memory/*8*/;
  666. }
  667. /*FI*/return R;
  668. }
  669. int r870use_current(T870* C){
  670. int R=0;
  671. {int z1=(((T870*)C))->_use_current_state/*44*/;
  672.  
  673. if((1004==z1)){
  674. R=1;
  675. }
  676.  else 
  677. if((1003==z1)){
  678. }
  679.  else 
  680. if((1005==z1)){
  681. C->_use_current_state=1006;
  682. r870compute_use_current(C);
  683. R=r870use_current(C);
  684. }
  685.  else {R=1;
  686. }}
  687. return R;
  688. }
  689. void r870jvm_define(T870* C){
  690. r870method_info_start(C);
  691. r870jvm_define_opening(C);
  692. /*IF*/if (((((T870*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  693. r592compile_to_jvm(((T592*)((((T870*)C))->_routine_body/*32*/)));
  694. }
  695. /*FI*/r870jvm_define_closing(C);
  696. X291jvm_return_code(X291run_type((((T870*)C))->_result_type/*24*/));
  697. r506finish(((T506*)(oBC364method_info)));
  698. }
  699. /*No:RUN_FEATURE_4.us_to_pointer*/
  700. int r870direct_cse_call(T870* C){
  701. int R=0;
  702. T0* _rf8=NULL;
  703. T0* _c=NULL;
  704. /*IF*/if ((((((T870*)C))->_arguments/*20*/)==((void*)(NULL)))&&(((((T870*)C))->_local_vars/*52*/)==((void*)(NULL)))) {
  705. _c=r870body_one_result(C);
  706. if(NULL!=(_c))switch(((T0*)_c)->id) {
  707. case 121: case 890: case 414: case 453: case 180: case 460: case 932: case 990: case 253: case 278: case 767: case 760: case 915: case 534: case 999: case 517: case 520: case 557: case 72: case 574: case 90: case 57: case 313: case 487: case 492: case 655: case 112: 
  708. break;
  709. default:
  710. _c=NULL;
  711. };/*IF*/if (((_c)!=((void*)(NULL)))&&((X295arguments(_c))==((void*)(NULL)))) {
  712. _c=/*X295*/((T0*)(((T121*)((T121*)_c)))->_target/*12*/);
  713. if(NULL!=(_c))switch(((T0*)_c)->id) {
  714. case 121: case 890: case 414: case 453: case 180: case 460: case 932: case 990: case 253: case 278: case 767: case 760: case 915: case 534: case 999: case 517: case 520: case 557: case 72: case 574: case 90: case 57: case 313: case 487: case 492: case 655: case 112: 
  715. break;
  716. default:
  717. _c=NULL;
  718. };/*IF*/if (((_c)!=((void*)(NULL)))&&(X662is_current(/*X295*/((T0*)(((T121*)((T121*)_c)))->_target/*12*/)))) {
  719. /*IF*/if ((X295arguments(_c))==((void*)(NULL))) {
  720. _rf8=X295run_feature(_c);
  721. if(NULL!=(_rf8))switch(((T0*)_rf8)->id) {
  722. case 892: 
  723. break;
  724. default:
  725. _rf8=NULL;
  726. };/*IF*/if ((_rf8)!=((void*)(NULL))) {
  727. R=(X776to_string((((T892*)((T892*)_rf8)))->_name/*16*/))==((void*)(((T0*)ms135_473)));
  728. }
  729. /*FI*/}
  730. /*FI*/}
  731. /*FI*/}
  732. /*FI*/}
  733. /*FI*/return R;
  734. }
  735. /*No:RUN_FEATURE_4.fatal_error*/
  736. int r870jvm_local_variable_offset(T870* C,T0* a1){
  737. int R=0;
  738. R=X291jvm_stack_space((((T870*)C))->_current_type/*4*/);
  739. /*IF*/if (((((T870*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  740. R=(R)+(r31jvm_stack_space(((T31*)((((T870*)C))->_arguments/*20*/))));
  741. }
  742. /*FI*/R=(R)+(r620jvm_offset_of(((T620*)((((T870*)C))->_local_vars/*52*/)),a1));
  743. return R;
  744. }
  745. /*No:RUN_FEATURE_4.clients_memory*/
  746. void r870initialize(T870* C){
  747. C->_arguments=(((T696*)((T696*)((((T870*)C))->_base_feature/*48*/))))->_arguments/*28*/;
  748. /*IF*/if ((((((T870*)C))->_arguments/*20*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T870*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
  749. C->_arguments=r31to_runnable(((T31*)((((T870*)C))->_arguments/*20*/)),(((T870*)C))->_current_type/*4*/);
  750. }
  751. /*FI*/C->_result_type=X291to_runnable((((T696*)((T696*)((((T870*)C))->_base_feature/*48*/))))->_result_type/*12*/,(((T870*)C))->_current_type/*4*/);
  752. C->_local_vars=(((T696*)((T696*)((((T870*)C))->_base_feature/*48*/))))->_local_vars/*20*/;
  753. /*IF*/if ((((((T870*)C))->_local_vars/*52*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T733*)((T733*)((((T620*)((T620*)((((T870*)C))->_local_vars/*52*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
  754. C->_local_vars=r620to_runnable(((T620*)((((T870*)C))->_local_vars/*52*/)),(((T870*)C))->_current_type/*4*/);
  755. }
  756. /*FI*/C->_routine_body=(((T696*)((T696*)((((T870*)C))->_base_feature/*48*/))))->_routine_body/*52*/;
  757. /*IF*/if (((((T870*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  758. C->_routine_body=r592to_runnable(((T592*)((((T870*)C))->_routine_body/*32*/)),(((T870*)C))->_current_type/*4*/);
  759. }
  760. /*FI*//*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
  761. C->_require_assertion=r696run_require((T0*)C);
  762. }
  763. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  764. C->_ensure_assertion=r696run_ensure((T0*)C);
  765. }
  766. /*FI*/}
  767. /*No:RUN_FEATURE_4.C_direct_cse_call*/
  768. /*No:RUN_FEATURE_4.C_dc_pco1*/
  769. /*No:RUN_FEATURE_4.afd_check*/
  770. /*No:RUN_FEATURE_4.update_tmp_jvm_descriptor*/
  771. /*No:TYPE_NONE.id*/
  772. /*No:TYPE_NONE.jvm_target_descriptor_in*/
  773. /*No:TYPE_NONE.jvm_if_x_eq*/
  774. int r284has_creation(T284* C,T0* a1){
  775. int R=0;
  776. r683add_position(X776start_position(a1));
  777. r284error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T284*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_284));
  778. return R;
  779. }
  780. /*No:TYPE_NONE.us_none*/
  781. /*No:TYPE_NONE.is_anchored*/
  782. /*No:TYPE_NONE.is_array*/
  783. /*No:TYPE_NONE.is_a*/
  784. /*No:TYPE_NONE.jvm_to_reference*/
  785. /*No:TYPE_NONE.run_type*/
  786. /*No:TYPE_NONE.is_pointer*/
  787. /*No:TYPE_NONE.is_dummy_expanded*/
  788. int r284jvm_push_default(void){
  789. int R=0;
  790. /*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)(oBC364code_attribute)),1,1);
  791. /*]*/
  792. R=1;
  793. return R;
  794. }
  795. /*No:TYPE_NONE.is_string*/
  796. /*No:TYPE_NONE.is_like_feature*/
  797. /*No:TYPE_NONE.is_like_current*/
  798. void r284make(T284* C,T0* a1){
  799. {T451*n=malloc(sizeof(*n));
  800. *n=M451;
  801. r451make(n,((T0*)ms19_473),a1);
  802. C->_base_class_name=(T0*)n;
  803. }
  804. }
  805. T0* r284jvm_root_class(void){
  806. if (fBC364jvm_root_class==0){
  807. T0* R=NULL;
  808. fBC364jvm_root_class=1;
  809. {T7*n=malloc(sizeof(*n));
  810. *n=M7;
  811. r7make(n,12);
  812. R=(T0*)n;
  813. }
  814. r7copy(((T7*)R),(((T228*)((T228*)(oBC364jvm))))->_output_name/*16*/);
  815. r7extend(((T7*)R),'\57');
  816. r7append(((T7*)R),((T0*)ms112_470));
  817. oBC364jvm_root_class=R;}
  818. return oBC364jvm_root_class;}
  819. /*No:TYPE_NONE.jvm_return_code*/
  820. /*No:TYPE_NONE.jvm_xnewarray*/
  821. /*No:TYPE_NONE.jvm_descriptor_in*/
  822. /*No:TYPE_NONE.start_position*/
  823. /*No:TYPE_NONE.is_user_expanded*/
  824. /*No:TYPE_NONE.is_character*/
  825. T0* r284written_mark(void){
  826. T0* R=NULL;
  827. R=((T0*)ms19_473);
  828. return R;
  829. }
  830. /*No:TYPE_NONE.is_run_type*/
  831. /*No:TYPE_NONE.to_runnable*/
  832. /*No:TYPE_NONE.is_formal_generic*/
  833. T0* r284generic_list(T284* C){
  834. T0* R=NULL;
  835. r284fatal_error_generic_list(C);
  836. return R;
  837. }
  838. /*No:TYPE_NONE.is_real*/
  839. /*No:TYPE_NONE.is_bit*/
  840. void r284fatal_error_generic_list(T284* C){
  841. r683add_type((T0*)C,((T0*)ms12_291));
  842. r683print_as_fatal_error(((T683*)(oBC364eh)));
  843. }
  844. /*No:TYPE_NONE.jvm_check_class_invariant*/
  845. T0* r284jvm_root_descriptor(void){
  846. if (fBC364jvm_root_descriptor==0){
  847. T0* R=NULL;
  848. fBC364jvm_root_descriptor=1;
  849. {T7*n=malloc(sizeof(*n));
  850. *n=M7;
  851. r7make(n,12);
  852. R=(T0*)n;
  853. }
  854. r7extend(((T7*)R),'L');
  855. r7append(((T7*)R),r284jvm_root_class());
  856. r7extend(((T7*)R),'\73');
  857. oBC364jvm_root_descriptor=R;}
  858. return oBC364jvm_root_descriptor;}
  859. /*No:TYPE_NONE.jvm_xaload*/
  860. T0* r284smallest_ancestor(T0* a1){
  861. T0* R=NULL;
  862. R=a1;
  863. return R;
  864. }
  865. /*No:TYPE_NONE.is_boolean*/
  866. /*No:TYPE_NONE.is_double*/
  867. int r284jvm_stack_space(void){
  868. int R=0;
  869. /*IF*//*AF*//*AE*/
  870. R=1;
  871. /*FI*/return R;
  872. }
  873. /*No:TYPE_NONE.run_class*/
  874. T0* r284run_time_mark(void){
  875. T0* R=NULL;
  876. R=((T0*)ms19_473);
  877. return R;
  878. }
  879. int r284is_a_in(T284* C,T0* a1,T0* a2){
  880. int R=0;
  881. T0* _ct=NULL;
  882. T0* _t2=NULL;
  883. T0* _t1=NULL;
  884. /*IF*/if ((r284written_mark())==((void*)(X291written_mark(a1)))) {
  885. R=1;
  886. }
  887. else {
  888. _ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
  889. _t1=/*(IRF4.4to_runnable*/((T0*)(C))/*)*/;
  890. _t2=X291to_runnable(a1,_ct);
  891. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  892. R=1;
  893. }
  894. else {
  895. R=X291is_a(_t1,_t2);
  896. }
  897. /*FI*/}
  898. /*FI*/return R;
  899. }
  900. T0* r284look_up_for(T284* C,T0* a1,T0* a2){
  901. T0* R=NULL;
  902. R=r605look_up_for(((T605*)(r284base_class(C))),a1,a2);
  903. return R;
  904. }
  905. /*No:TYPE_NONE.jvm_convert_to*/
  906. /*No:TYPE_NONE.expanded_initializer*/
  907. /*No:TYPE_NONE.fz_jvm_root*/
  908. /*No:TYPE_NONE.jvm_if_x_ne*/
  909. /*No:TYPE_NONE.fz_dot*/
  910. /*No:TYPE_NONE.is_generic*/
  911. /*No:TYPE_NONE.jvm_write_local*/
  912. void r284jvm_initialize_local(int a1){
  913. /*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)(oBC364code_attribute)),1,1);
  914. /*]*/
  915. /*[IRF3.6jvm_write_local*/{int b1=a1;
  916. r256opcode_astore(((T256*)(oBC364code_attribute)),b1);
  917. }/*]*/
  918. }
  919. /*No:TYPE_NONE.used_as_reference*/
  920. /*No:TYPE_NONE.is_reference*/
  921. void r284error(T0* a1,T0* a2){
  922. r683add_position(a1);
  923. r683error(((T683*)(oBC364eh)),a2);
  924. }
  925. T0* r284base_class(T284* C){
  926. T0* R=NULL;
  927. T0* _bcn=NULL;
  928. _bcn=(((T284*)C))->_base_class_name/*4*/;
  929. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  930. R=r451base_class(((T451*)_bcn));
  931. }
  932. else {
  933. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  934. r7append(((T7*)(oBC683explanation)),b1);
  935. }/*]*/
  936. r683add_type((T0*)C,((T0*)ms67_470));
  937. r683print_as_fatal_error(((T683*)(oBC364eh)));
  938. }
  939. /*FI*/return R;
  940. }
  941. /*No:TYPE_NONE.jvm_xastore*/
  942. /*No:TYPE_NONE.is_any*/
  943. /*No:TYPE_NONE.jvm_method_flags*/
  944. /*No:TYPE_NONE.base_class_name*/
  945. /*No:TYPE_NONE.jvm_push_local*/
  946. /*No:TYPE_NONE.is_expanded*/
  947. /*No:TYPE_NONE.is_basic_eiffel_expanded*/
  948. /*No:TYPE_NONE.is_none*/
  949. /*No:TYPE_NONE.is_integer*/
  950. /*No:PROCEDURE.arguments*/
  951. T0* r297try_to_undefine(T297* C,T0* a1,T0* a2){
  952. T0* R=NULL;
  953. X776undefine_in(a1,a2);
  954. R=r297try_to_undefine_aux(C,a1,a2);
  955. /*IF*/if ((R)!=((void*)(NULL))) {
  956. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T297*)C))->_clients/*24*/);
  957. /*]*/
  958. }
  959. else {
  960. r605fatal_undefine(((T605*)a2),a1);
  961. }
  962. /*FI*/return R;
  963. }
  964. /*No:PROCEDURE.is_deferred*/
  965. /*No:PROCEDURE.fz_bad_assertion*/
  966. T0* r297runnable(T0* a1,T0* a2,T0* a3){
  967. T0* R=NULL;
  968. T0* _a=NULL;
  969. int _i=0;
  970. /*IF*/if (!(r608empty(((T608*)a1)))) {
  971. R=r608twin(((T608*)a1));
  972. _i=(((T608*)((T608*)R)))->_upper/*8*/;
  973. while (!((_i)==(0))) {
  974. r604push(((T604*)(oBC364small_eiffel)),a3);
  975. _a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
  976. /*IF*/if ((_a)==((void*)(NULL))) {
  977. r297error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
  978. }
  979. else {
  980. /*[IRF3.6put*/{T608* C1=((T608*)R);
  981. T0* b1=_a;
  982. int b2=_i;
  983. ((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
  984. }/*]*/
  985. }
  986. /*FI*/r604pop(((T604*)(oBC364small_eiffel)));
  987. _i=(_i)-(1);
  988. }
  989. }
  990. /*FI*/return R;
  991. }
  992. /*No:PROCEDURE.rescue_compound*/
  993. void r297add_into(T297* C,T0* a1){
  994. T0* _fn=NULL;
  995. int _i=0;
  996. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T297*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  997. _i=1;
  998. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T297*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  999. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T297*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  1000. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  1001. _fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  1002. r683add_position(X776start_position(_fn));
  1003. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T297*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  1004. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  1005. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  1006. r7append(((T7*)(oBC683explanation)),b1);
  1007. }/*]*/
  1008. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1009. }
  1010. else {
  1011. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  1012. }
  1013. /*FI*/_i=(_i)+(1);
  1014. }
  1015. }
  1016. /*No:PROCEDURE.end_comment*/
  1017. T0* r297try_to_undefine_aux(T297* C,T0* a1,T0* a2){
  1018. T0* R=NULL;
  1019. {T853*n=malloc(sizeof(*n));
  1020. *n=M853;
  1021. r853from_effective(n,a1,(((T297*)C))->_arguments/*28*/,(((T297*)C))->_require_assertion/*36*/,(((T297*)C))->_ensure_assertion/*40*/,a2);
  1022. R=(T0*)n;
  1023. }
  1024. return R;
  1025. }
  1026. void r297make(T297* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
  1027. r297make_routine(C,a1,a2,a3,a4,a5);
  1028. C->_local_vars=a6;
  1029. C->_routine_body=a7;
  1030. C->_use_current_state=1024;
  1031. }
  1032. /*No:PROCEDURE.not_computed*/
  1033. /*No:PROCEDURE.nb_errors*/
  1034. void r297make_routine(T297* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  1035. r297make_e_feature(C,a1,NULL);
  1036. C->_header_comment=a4;
  1037. C->_arguments=a2;
  1038. C->_obsolete_mark=a3;
  1039. C->_require_assertion=a5;
  1040. }
  1041. /*No:PROCEDURE.local_vars*/
  1042. void r297set_header_comment(T297* C,T0* a1){
  1043. /*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
  1044. C->_end_comment=a1;
  1045. }
  1046. /*FI*/}
  1047. T0* r297start_position(T297* C){
  1048. T0* R=NULL;
  1049. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T297*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  1050. return R;
  1051. }
  1052. T0* r297to_run_feature(T297* C,T0* a1,T0* a2){
  1053. T0* R=NULL;
  1054. r297check_obsolete(C);
  1055. {T832*n=malloc(sizeof(*n));
  1056. *n=M832;
  1057. r832make(n,a1,a2,(T0*)C);
  1058. R=(T0*)n;
  1059. }
  1060. return R;
  1061. }
  1062. /*No:PROCEDURE.ensure_assertion*/
  1063. /*No:PROCEDURE.code_require*/
  1064. T0* r297run_ensure(T0* a1){
  1065. T0* R=NULL;
  1066. T0* _r=NULL;
  1067. r608clear(((T608*)(oBC359assertion_collector)));
  1068. /*[IRF3.3clear*/{T0* _default_item=NULL;
  1069. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  1070. }/*]*/
  1071. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)))),1002,/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/));
  1072. _r=r297runnable(oBC359assertion_collector,/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/),a1);
  1073. /*IF*/if ((_r)!=((void*)(NULL))) {
  1074. {T633*n=malloc(sizeof(*n));
  1075. *n=M633;
  1076. r633from_runnable(n,_r);
  1077. R=(T0*)n;
  1078. }
  1079. /*[IRF3.3set_header_comment*/((((T633*)(((T633*)R))))->_header_comment)=((((T56*)((T56*)(oBC359header_comment_memory))))->_item/*0*/);
  1080. /*]*/
  1081. /*[IRF3.3clear*/{T0* _default_item=NULL;
  1082. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  1083. }/*]*/
  1084. }
  1085. /*FI*/return R;
  1086. }
  1087. T0* r297run_require(T0* a1){
  1088. T0* R=NULL;
  1089. T0* _ar=NULL;
  1090. T0* _hc=NULL;
  1091. T0* _er=NULL;
  1092. T0* _r=NULL;
  1093. int _i=0;
  1094. r522clear(((T522*)(oBC359require_collector)));
  1095. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)))),1001,/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/));
  1096. /*IF*/if (!(r522empty(((T522*)(oBC359require_collector))))) {
  1097. _i=1;
  1098. while (!((_i)>((((T522*)((T522*)(oBC359require_collector))))->_upper/*8*/))) {
  1099. _er=r522item(((T522*)(oBC359require_collector)),_i);
  1100. _hc=(((T343*)((T343*)_er)))->_header_comment/*4*/;
  1101. /*IF*/if (!(/*(IRF4.7empty*/((((T343*)((T343*)_er)))->_list/*8*/)==(NULL)/*)*/)) {
  1102. _r=r297runnable((((T343*)((T343*)_er)))->_list/*8*/,/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/),a1);
  1103. /*IF*/if ((_r)!=((void*)(NULL))) {
  1104. {T343*n=malloc(sizeof(*n));
  1105. *n=M343;
  1106. r343from_runnable(n,_r);
  1107. _er=(T0*)n;
  1108. }
  1109. /*[IRF3.3set_header_comment*/((((T343*)(((T343*)_er))))->_header_comment)=(_hc);
  1110. /*]*/
  1111. /*IF*/if ((_ar)==((void*)(NULL))) {
  1112. _ar=se_ma522(1,_er);
  1113. }
  1114. else {
  1115. r522add_last(((T522*)_ar),_er);
  1116. }
  1117. /*FI*/}
  1118. /*FI*/}
  1119. /*FI*/_i=(_i)+(1);
  1120. }
  1121. /*IF*/if ((_ar)!=((void*)(NULL))) {
  1122. {T567*n=malloc(sizeof(*n));
  1123. *n=M567;
  1124. /*[IRF3.3make*/((((T567*)(n)))->_list)=(_ar);
  1125. /*]*/
  1126. R=(T0*)n;
  1127. }
  1128. }
  1129. /*FI*/}
  1130. /*FI*/return R;
  1131. }
  1132. /*No:PROCEDURE.result_type*/
  1133. /*No:PROCEDURE.fz_03*/
  1134. /*No:PROCEDURE.em1*/
  1135. /*No:PROCEDURE.obsolete_mark*/
  1136. /*No:PROCEDURE.set_clients*/
  1137. /*No:PROCEDURE.em2*/
  1138. /*No:PROCEDURE.names*/
  1139. /*No:PROCEDURE.require_assertion*/
  1140. /*No:PROCEDURE.use_current_state*/
  1141. /*No:PROCEDURE.code_ensure*/
  1142. void r297set_rescue_compound(T297* C,T0* a1){
  1143. /*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.1is_deferred*/0/*)*/)) {
  1144. r297error(r297start_position(C),((T0*)ms6_368));
  1145. }
  1146. /*FI*/C->_rescue_compound=a1;
  1147. }
  1148. int r297can_hide(T297* C,T0* a1,T0* a2){
  1149. int R=0;
  1150. /*IF*/if (((((T297*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1151. /*IF*/if ((((((T297*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1152. r683add_position(X359start_position(a1));
  1153. r297error(r297start_position(C),((T0*)ms5_359));
  1154. }
  1155. /*FI*/}
  1156. /*FI*//*IF*/if (((((T297*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
  1157. /*IF*/if ((((((T297*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  1158. r683add_position(X359start_position(a1));
  1159. r297error(r297start_position(C),((T0*)ms6_359));
  1160. }
  1161.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T297*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  1162. r683add_position(X359start_position(a1));
  1163. r297error(r297start_position(C),((T0*)ms7_359));
  1164. }
  1165. /*FI*/}
  1166. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1167. /*IF*/if (((((T297*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1168. /*IF*/if (!(X291is_a_in((((T297*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1169. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  1170. r7append(((T7*)(oBC683explanation)),b1);
  1171. }/*]*/
  1172. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  1173. r7append(((T7*)(oBC683explanation)),b1);
  1174. }/*]*/
  1175. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1176. }
  1177. /*FI*/}
  1178. /*FI*/}
  1179. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1180. /*IF*/if (((((T297*)C))->_arguments/*28*/)!=((void*)(NULL))) {
  1181. /*IF*/if (!(r31is_a_in(((T31*)((((T297*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
  1182. r683add_position(X359start_position(a1));
  1183. r683add_position(r297start_position(C));
  1184. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  1185. r7append(((T7*)(oBC683explanation)),b1);
  1186. }/*]*/
  1187. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  1188. r7append(((T7*)(oBC683explanation)),b1);
  1189. }/*]*/
  1190. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1191. }
  1192. /*FI*/}
  1193. /*FI*/}
  1194. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1195. return R;
  1196. }
  1197. /*No:PROCEDURE.header_comment*/
  1198. /*No:PROCEDURE.routine_body*/
  1199. int r297is_merge_with(T297* C,T0* a1,T0* a2){
  1200. int R=0;
  1201. /*IF*/if (((((T297*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1202. /*IF*/if ((((((T297*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1203. r683add_position(X359start_position(a1));
  1204. r297error(r297start_position(C),((T0*)ms2_359));
  1205. }
  1206. /*FI*/}
  1207. /*FI*//*IF*/if (((((T297*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
  1208. /*IF*/if ((((((T297*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  1209. r683add_position(X359start_position(a1));
  1210. r297error(r297start_position(C),((T0*)ms3_359));
  1211. }
  1212.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T297*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  1213. r683add_position(X359start_position(a1));
  1214. r297error(r297start_position(C),((T0*)ms4_359));
  1215. }
  1216. /*FI*/}
  1217. /*FI*//*IF*/if (((((T297*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1218. /*IF*/if (!(X291is_a_in((((T297*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1219. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  1220. }
  1221. /*FI*/}
  1222. /*FI*//*IF*/if (((((T297*)C))->_arguments/*28*/)!=((void*)(NULL))) {
  1223. /*IF*/if (!(r31is_a_in(((T31*)((((T297*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
  1224. r683add_position(X359start_position(a1));
  1225. r297error(r297start_position(C),((T0*)ms12_359));
  1226. }
  1227. /*FI*/}
  1228. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1229. return R;
  1230. }
  1231. /*No:PROCEDURE.fz_dot*/
  1232. /*No:PROCEDURE.set_ensure_assertion*/
  1233. /*No:PROCEDURE.first_name*/
  1234. /*No:PROCEDURE.clients*/
  1235. void r297collect_for(T297* C,int a1){
  1236. /*IF*/if ((a1)==(1001)) {
  1237. /*IF*/if (((((T297*)C))->_require_assertion/*36*/)!=((void*)(NULL))) {
  1238. /*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T297*)C))->_require_assertion/*36*/))) {
  1239. r522add_last(((T522*)(oBC359require_collector)),(((T297*)C))->_require_assertion/*36*/);
  1240. }
  1241. /*FI*/}
  1242. /*FI*/}
  1243. else {
  1244. /*IF*/if (((((T297*)C))->_ensure_assertion/*40*/)!=((void*)(NULL))) {
  1245. /*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T297*)C))->_ensure_assertion/*40*/))))->_header_comment/*4*/);
  1246. /*]*/
  1247. r633add_into(((T633*)((((T297*)C))->_ensure_assertion/*40*/)),oBC359assertion_collector);
  1248. }
  1249. /*FI*/}
  1250. /*FI*/}
  1251. void r297error(T0* a1,T0* a2){
  1252. r683add_position(a1);
  1253. r683error(((T683*)(oBC364eh)),a2);
  1254. }
  1255. /*No:PROCEDURE.base_class*/
  1256. void r297make_e_feature(T297* C,T0* a1,T0* a2){
  1257. C->_names=a1;
  1258. C->_result_type=a2;
  1259. }
  1260. void r297check_obsolete(T297* C){
  1261. /*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
  1262. /*IF*/if (((((T297*)C))->_obsolete_mark/*32*/)!=((void*)(NULL))) {
  1263. /*[IRF3.6append*/{T0* b1=((T0*)ms7_368);
  1264. r7append(((T7*)(oBC683explanation)),b1);
  1265. }/*]*/
  1266. /*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T297*)C))->_obsolete_mark/*32*/))))->_to_string/*16*/;
  1267. r7append(((T7*)(oBC683explanation)),b1);
  1268. }/*]*/
  1269. r297warning(r297start_position(C),((T0*)ms137_470));
  1270. }
  1271. /*FI*/}
  1272. /*FI*/}
  1273. void r297warning(T0* a1,T0* a2){
  1274. r683add_position(a1);
  1275. r683warning(((T683*)(oBC364eh)),a2);
  1276. }
  1277. T0*oBC613type_idx=NULL;
  1278. /*No:EXCEPTION_TABLE.append_u1*/
  1279. void r613append_u2(T0* a1,int a2){
  1280. /*[IRF3.6append_u1*/{T0* b1=a1;
  1281. int b2=(a2)/(256);
  1282. r7extend(((T7*)b1),((char)(b2)));
  1283. }/*]*/
  1284. /*[IRF3.6append_u1*/{T0* b1=a1;
  1285. int b2=(a2)%(256);
  1286. r7extend(((T7*)b1),((char)(b2)));
  1287. }/*]*/
  1288. }
  1289. /*No:EXCEPTION_TABLE.make*/
  1290. void r613store_in(T0* a1){
  1291. int _i=0;
  1292. int _c=0;
  1293. _c=/*(IRF4.9count*//*(IRF4.6count*/((((T226*)((T226*)(oBC613from_pc))))->_upper/*8*/)+(1)/*)*//*)*/;
  1294. r613append_u2(a1,_c);
  1295. _i=0;
  1296. while (!((_i)>=(_c))) {
  1297. r613append_u2(a1,/*(IRF4.6item*/((((T226*)((T226*)(oBC613from_pc))))->_storage/*0*/)[_i]/*)*/);
  1298. r613append_u2(a1,/*(IRF4.6item*/((((T226*)((T226*)(oBC613to_pc))))->_storage/*0*/)[_i]/*)*/);
  1299. r613append_u2(a1,/*(IRF4.6item*/((((T226*)((T226*)(oBC613handler_pc))))->_storage/*0*/)[_i]/*)*/);
  1300. r613append_u2(a1,/*(IRF4.6item*/((((T226*)((T226*)(oBC613type_idx))))->_storage/*0*/)[_i]/*)*/);
  1301. _i=(_i)+(1);
  1302. }
  1303. }
  1304. /*No:EXCEPTION_TABLE.clear*/
  1305. T0*oBC613to_pc=NULL;
  1306. T0*oBC613from_pc=NULL;
  1307. T0*oBC613handler_pc=NULL;
  1308. /*No:EXCEPTION_TABLE.count*/
  1309. /*No:CST_ATT_REAL.arguments*/
  1310. T0* r835try_to_undefine(T835* C,T0* a1,T0* a2){
  1311. T0* R=NULL;
  1312. X776undefine_in(a1,a2);
  1313. R=r835try_to_undefine_aux(C,a1,a2);
  1314. /*IF*/if ((R)!=((void*)(NULL))) {
  1315. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T835*)C))->_clients/*20*/);
  1316. /*]*/
  1317. }
  1318. else {
  1319. r605fatal_undefine(((T605*)a2),a1);
  1320. }
  1321. /*FI*/return R;
  1322. }
  1323. /*No:CST_ATT_REAL.is_deferred*/
  1324. void r835add_into(T835* C,T0* a1){
  1325. T0* _fn=NULL;
  1326. int _i=0;
  1327. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T835*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  1328. _i=1;
  1329. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T835*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  1330. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T835*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  1331. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  1332. _fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  1333. r683add_position(X776start_position(_fn));
  1334. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T835*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  1335. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  1336. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  1337. r7append(((T7*)(oBC683explanation)),b1);
  1338. }/*]*/
  1339. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1340. }
  1341. else {
  1342. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  1343. }
  1344. /*FI*/_i=(_i)+(1);
  1345. }
  1346. }
  1347. T0* r835try_to_undefine_aux(T835* C,T0* a1,T0* a2){
  1348. T0* R=NULL;
  1349. r683add_position(r835start_position(C));
  1350. r835error(X776start_position(a1),((T0*)ms1_321));
  1351. r605fatal_undefine(((T605*)a2),a1);
  1352. return R;
  1353. }
  1354. void r835make(T835* C,T0* a1,T0* a2,T0* a3){
  1355. r835make_e_feature(C,a1,a2);
  1356. C->_value_mem=a3;
  1357. }
  1358. /*No:CST_ATT_REAL.nb_errors*/
  1359. /*No:CST_ATT_REAL.set_header_comment*/
  1360. T0* r835start_position(T835* C){
  1361. T0* R=NULL;
  1362. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T835*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  1363. return R;
  1364. }
  1365. T0* r835to_run_feature(T835* C,T0* a1,T0* a2){
  1366. T0* R=NULL;
  1367. T0* _rc=NULL;
  1368. _rc=X291run_class(a1);
  1369. R=r355at(((T355*)_rc),a2);
  1370. if(NULL!=(R))switch(((T0*)R)->id) {
  1371. case 808: 
  1372. break;
  1373. default:
  1374. R=NULL;
  1375. };/*IF*/if ((R)==((void*)(NULL))) {
  1376. {T808*n=malloc(sizeof(*n));
  1377. *n=M808;
  1378. r808make(n,a1,a2,(T0*)C);
  1379. R=(T0*)n;
  1380. }
  1381. }
  1382. /*FI*/return R;
  1383. }
  1384. /*No:CST_ATT_REAL.ensure_assertion*/
  1385. /*No:CST_ATT_REAL.code_require*/
  1386. /*No:CST_ATT_REAL.result_type*/
  1387. /*No:CST_ATT_REAL.em1*/
  1388. /*No:CST_ATT_REAL.set_clients*/
  1389. /*No:CST_ATT_REAL.em2*/
  1390. /*No:CST_ATT_REAL.value*/
  1391. /*No:CST_ATT_REAL.require_assertion*/
  1392. /*No:CST_ATT_REAL.names*/
  1393. /*No:CST_ATT_REAL.value_mem*/
  1394. int r835can_hide(T835* C,T0* a1,T0* a2){
  1395. int R=0;
  1396. /*IF*/if (((((T835*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1397. /*IF*/if ((((((T835*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1398. r683add_position(X359start_position(a1));
  1399. r835error(r835start_position(C),((T0*)ms5_359));
  1400. }
  1401. /*FI*/}
  1402. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  1403. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  1404. r835error(r835start_position(C),((T0*)ms6_359));
  1405. }
  1406. /*FI*/}
  1407. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1408. /*IF*/if (((((T835*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1409. /*IF*/if (!(X291is_a_in((((T835*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1410. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  1411. r7append(((T7*)(oBC683explanation)),b1);
  1412. }/*]*/
  1413. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  1414. r7append(((T7*)(oBC683explanation)),b1);
  1415. }/*]*/
  1416. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1417. }
  1418. /*FI*/}
  1419. /*FI*/}
  1420. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1421. /*IF*//*AF*//*AE*/
  1422. /*FI*/}
  1423. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1424. return R;
  1425. }
  1426. /*No:CST_ATT_REAL.header_comment*/
  1427. int r835is_merge_with(T835* C,T0* a1,T0* a2){
  1428. int R=0;
  1429. /*IF*/if (((((T835*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1430. /*IF*/if ((((((T835*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1431. r683add_position(X359start_position(a1));
  1432. r835error(r835start_position(C),((T0*)ms2_359));
  1433. }
  1434. /*FI*/}
  1435. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  1436. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  1437. r835error(r835start_position(C),((T0*)ms3_359));
  1438. }
  1439. /*FI*/}
  1440. /*FI*//*IF*/if (((((T835*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1441. /*IF*/if (!(X291is_a_in((((T835*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1442. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  1443. }
  1444. /*FI*/}
  1445. /*FI*//*IF*//*AF*//*AE*/
  1446. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1447. return R;
  1448. }
  1449. /*No:CST_ATT_REAL.fz_dot*/
  1450. /*No:CST_ATT_REAL.first_name*/
  1451. /*No:CST_ATT_REAL.clients*/
  1452. void r835collect_for(int a1){
  1453. /*IF*/if ((a1)==(1001)) {
  1454. /*IF*//*AF*//*AE*/
  1455. /*FI*/}
  1456. else {
  1457. /*IF*//*AF*//*AE*/
  1458. /*FI*/}
  1459. /*FI*/}
  1460. void r835error(T0* a1,T0* a2){
  1461. r683add_position(a1);
  1462. r683error(((T683*)(oBC364eh)),a2);
  1463. }
  1464. /*No:CST_ATT_REAL.base_class*/
  1465. void r835make_e_feature(T835* C,T0* a1,T0* a2){
  1466. C->_names=a1;
  1467. C->_result_type=a2;
  1468. }
  1469. /*No:FIELD_INFO.append_u1*/
  1470. void r543append_u2(T0* a1,int a2){
  1471. /*[IRF3.6append_u1*/{T0* b1=a1;
  1472. int b2=(a2)/(256);
  1473. r7extend(((T7*)b1),((char)(b2)));
  1474. }/*]*/
  1475. /*[IRF3.6append_u1*/{T0* b1=a1;
  1476. int b2=(a2)%(256);
  1477. r7extend(((T7*)b1),((char)(b2)));
  1478. }/*]*/
  1479. }
  1480. void r543add(T543* C,int a1,int a2,int a3){
  1481. C->_count=((((T543*)C))->_count/*0*/)+(1);
  1482. r543append_u2(oBC543storage,a1);
  1483. r543append_u2(oBC543storage,a2);
  1484. r543append_u2(oBC543storage,a3);
  1485. r543append_u2(oBC543storage,0);
  1486. }
  1487. void r543clear(T543* C){
  1488. C->_count=0;
  1489. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC543storage)))))->_count)=(0);
  1490. /*]*/
  1491. }
  1492. T0*oBC543storage=NULL;
  1493. /*No:FIELD_INFO.count*/
  1494. void r543write_bytes(T543* C){
  1495. r306print_count(((T306*)(oBC364echo)),((T0*)ms1_543),(((T543*)C))->_count/*0*/);
  1496. r228b_put_u2(((T228*)(oBC364jvm)),(((T543*)C))->_count/*0*/);
  1497. r228b_put_byte_string(((T228*)(oBC364jvm)),oBC543storage);
  1498. }
  1499. /*No:PROC_CALL_N.arguments*/
  1500. T0* r568add_comment(T568* C,T0* a1){
  1501. T0* R=NULL;
  1502. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1503. R=(T0*)C;
  1504. }
  1505. /*AF*/else {
  1506. {T46*n=malloc(sizeof(*n));
  1507. *n=M46;
  1508. r46make(n,(T0*)C,a1);
  1509. R=(T0*)n;
  1510. }
  1511. }
  1512. /*FI*/return R;
  1513. }
  1514. /*No:PROC_CALL_N.fz_bad_arguments*/
  1515. void r568make(T568* C,T0* a1,T0* a2,T0* a3){
  1516. C->_target=a1;
  1517. C->_feature_name=a2;
  1518. C->_arguments=a3;
  1519. }
  1520. /*No:PROC_CALL_N.nb_errors*/
  1521. /*No:PROC_CALL_N.feature_name*/
  1522. /*No:PROC_CALL_N.arg_count*/
  1523. /*No:PROC_CALL_N.run_feature*/
  1524. /*No:PROC_CALL_N.set_run_compound*/
  1525. T0* r568start_position(T568* C){
  1526. T0* R=NULL;
  1527. R=X776start_position((((T568*)C))->_feature_name/*12*/);
  1528. return R;
  1529. }
  1530. /*No:PROC_CALL_N.target*/
  1531. /*No:PROC_CALL_N.set_run_feature*/
  1532. T0* r568to_runnable(T568* C,T0* a1){
  1533. T0* R=NULL;
  1534. T0* _a=NULL;
  1535. /*IF*/if (((((T568*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  1536. r568to_runnable_0(C,a1);
  1537. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1538. _a=r431to_runnable(((T431*)((((T568*)C))->_arguments/*20*/)),r568current_type(C));
  1539. /*IF*/if ((_a)==((void*)(NULL))) {
  1540. r568error(r431start_position(((T431*)((((T568*)C))->_arguments/*20*/))),((T0*)ms56_470));
  1541. }
  1542. else {
  1543. C->_arguments=_a;
  1544. }
  1545. /*FI*/}
  1546. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1547. r431match_with(((T431*)((((T568*)C))->_arguments/*20*/)),(((T568*)C))->_run_feature/*16*/);
  1548. }
  1549. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1550. R=(T0*)C;
  1551. }
  1552. /*FI*/}
  1553. else {
  1554. {T568*n=malloc(sizeof(*n));
  1555. *n=M568;
  1556. r568make(n,(((T568*)C))->_target/*8*/,(((T568*)C))->_feature_name/*12*/,(((T568*)C))->_arguments/*20*/);
  1557. R=(T0*)n;
  1558. }
  1559. R=r568to_runnable(((T568*)R),a1);
  1560. }
  1561. /*FI*/return R;
  1562. }
  1563. /*No:PROC_CALL_N.fz_07*/
  1564. T0* r568current_type(T568* C){
  1565. T0* R=NULL;
  1566. /*IF*/if (((((T568*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  1567. R=(((T592*)((T592*)((((T568*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  1568. }
  1569. /*FI*/return R;
  1570. }
  1571. /*No:PROC_CALL_N.run_compound*/
  1572. /*No:PROC_CALL_N.compile_to_jvm*/
  1573. void r568to_runnable_0(T568* C,T0* a1){
  1574. C->_run_compound=a1;
  1575. r568cpc_to_runnable(C,r568current_type(C));
  1576. /*IF*/if ((/*X496*/((T0*)(((T832*)((T832*)((((T568*)C))->_run_feature/*16*/))))->_result_type/*24*/))!=((void*)(NULL))) {
  1577. r683add_position(X496start_position((((T568*)C))->_run_feature/*16*/));
  1578. r568error(X776start_position((((T568*)C))->_feature_name/*12*/),((T0*)ms1_173));
  1579. }
  1580. /*FI*/}
  1581. /*No:PROC_CALL_N.is_pre_computable*/
  1582. int r568use_current(T568* C){
  1583. int R=0;
  1584. /*IF*/if ((/*(IRF4.6arg_count*/r431count(((T431*)((((T568*)C))->_arguments/*20*/)))/*)*/)>(0)) {
  1585. R=r431use_current(((T431*)((((T568*)C))->_arguments/*20*/)));
  1586. }
  1587. /*FI*//*IF*/if (R) {
  1588. }
  1589.  else if (X662is_current((((T568*)C))->_target/*8*/)) {
  1590. R=X496use_current((((T568*)C))->_run_feature/*16*/);
  1591. }
  1592. else {
  1593. R=X662use_current((((T568*)C))->_target/*8*/);
  1594. }
  1595. /*FI*/return R;
  1596. }
  1597. void r568cpc_to_runnable(T568* C,T0* a1){
  1598. T0* _rc=NULL;
  1599. T0* _t=NULL;
  1600. _t=X662to_runnable((((T568*)C))->_target/*8*/,a1);
  1601. /*IF*/if ((_t)==((void*)(NULL))) {
  1602. r683add_position(X662start_position((((T568*)C))->_target/*8*/));
  1603. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  1604. r683fatal_error(((T683*)(oBC364eh)),b1);
  1605. }/*]*/
  1606. }
  1607. /*FI*/C->_target=_t;
  1608. _rc=X291run_class(X662result_type((((T568*)C))->_target/*8*/));
  1609. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  1610. r576update((((T568*)C))->_target/*8*/,(((T568*)C))->_run_feature/*16*/);
  1611. }
  1612. void r568error(T0* a1,T0* a2){
  1613. r683add_position(a1);
  1614. r683error(((T683*)(oBC364eh)),a2);
  1615. }
  1616. /*No:PROC_CALL_N.fatal_error*/
  1617. /*No:PROC_CALL_N.end_mark_comment*/
  1618. /*No:PROC_CALL_N.call_proc_call_c2jvm*/
  1619. void r568afd_check(T568* C){
  1620. T0* _running=NULL;
  1621. T0* _rc=NULL;
  1622. _rc=X291run_class(X662result_type((((T568*)C))->_target/*8*/));
  1623. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  1624. /*IF*/if ((_running)==((void*)(NULL))) {
  1625. r683add_position(X662start_position((((T568*)C))->_target/*8*/));
  1626. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  1627. r7append(((T7*)(oBC683explanation)),b1);
  1628. }/*]*/
  1629. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  1630. r7append(((T7*)(oBC683explanation)),b1);
  1631. }/*]*/
  1632. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  1633. r7append(((T7*)(oBC683explanation)),b1);
  1634. }/*]*/
  1635. r683print_as_warning(((T683*)(oBC364eh)));
  1636. r355set_at_run_time(((T355*)_rc));
  1637. }
  1638.  else if ((r396count(((T396*)_running)))>(0)) {
  1639. r576update((((T568*)C))->_target/*8*/,(((T568*)C))->_run_feature/*16*/);
  1640. }
  1641. /*FI*/X662afd_check((((T568*)C))->_target/*8*/);
  1642. /*IF*/if ((/*(IRF4.6arg_count*/r431count(((T431*)((((T568*)C))->_arguments/*20*/)))/*)*/)>(0)) {
  1643. r431afd_check(((T431*)((((T568*)C))->_arguments/*20*/)));
  1644. }
  1645. /*FI*/}
  1646. T0* r568make_runnable(T568* C,T0* a1,T0* a2,T0* a3,T0* a4){
  1647. T0* R=NULL;
  1648. /*IF*/if (((((T568*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  1649. R=(T0*)C;
  1650. r568make(((T568*)R),a2,(((T568*)C))->_feature_name/*12*/,a3);
  1651. C->_run_compound=a1;
  1652. C->_run_feature=a4;
  1653. }
  1654. else {
  1655. {T568*n=malloc(sizeof(*n));
  1656. *n=M568;
  1657. r568make(n,a2,(((T568*)C))->_feature_name/*12*/,a3);
  1658. R=(T0*)n;
  1659. }
  1660. /*[IRF3.3set_run_compound*/((((T568*)(((T568*)R))))->_run_compound)=(a1);
  1661. /*]*/
  1662. /*[IRF3.3set_run_feature*/((((T568*)(((T568*)R))))->_run_feature)=(a4);
  1663. /*]*/
  1664. }
  1665. /*FI*/return R;
  1666. }
  1667. void r362check_creation_clause(T362* C,T0* a1){
  1668. /*IF*/if (/*(IRF4.7has_creation_clause*/((((T605*)((T605*)(X291base_class(a1)))))->_creation_clause_list/*44*/)!=(NULL)/*)*/) {
  1669. /*[IRF3.6append*/{T0* b1=((T0*)ms1_334);
  1670. r7append(((T7*)(oBC683explanation)),b1);
  1671. }/*]*/
  1672. r683add_type(a1,((T0*)ms2_334));
  1673. r362error((((T362*)C))->_start_position/*8*/,((T0*)ms3_334));
  1674. }
  1675. /*FI*/}
  1676. T0* r362add_comment(T362* C,T0* a1){
  1677. T0* R=NULL;
  1678. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1679. R=(T0*)C;
  1680. }
  1681. /*AF*/else {
  1682. {T46*n=malloc(sizeof(*n));
  1683. *n=M46;
  1684. r46make(n,(T0*)C,a1);
  1685. R=(T0*)n;
  1686. }
  1687. }
  1688. /*FI*/return R;
  1689. }
  1690. void r362check_created_type(T362* C,T0* a1){
  1691. T0* _rt=NULL;
  1692. _rt=X291run_type(a1);
  1693. /*IF*/if ((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/) {
  1694. }
  1695.  else if ((((T605*)((T605*)(X291base_class(_rt)))))->_is_deferred/*16*/) {
  1696. r683add_type(_rt,((T0*)ms2_747));
  1697. r683add_position((((T362*)C))->_start_position/*8*/);
  1698. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_747);
  1699. r683fatal_error(((T683*)(oBC364eh)),b1);
  1700. }/*]*/
  1701. }
  1702. /*FI*//*IF*/if (X291is_formal_generic(a1)) {
  1703. r683add_position((((T362*)C))->_start_position/*8*/);
  1704. /*[IRF3.6append*/{T0* b1=((T0*)ms4_747);
  1705. r7append(((T7*)(oBC683explanation)),b1);
  1706. }/*]*/
  1707. r683add_type(a1,((T0*)ms5_747));
  1708. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1709. }
  1710. /*FI*/r355set_at_run_time(((T355*)(X291run_class(_rt))));
  1711. }
  1712. /*No:CREATION_CALL_1.writable*/
  1713. void r362make(T362* C,T0* a1,T0* a2){
  1714. C->_start_position=a1;
  1715. C->_writable=a2;
  1716. }
  1717. /*No:CREATION_CALL_1.start_position*/
  1718. T0* r362to_runnable(T362* C,T0* a1){
  1719. T0* R=NULL;
  1720. T0* _t=NULL;
  1721. /*IF*/if (((((T362*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  1722. r362check_writable(C,a1);
  1723. _t=X662result_type((((T362*)C))->_writable/*12*/);
  1724. r362check_created_type(C,_t);
  1725. r362check_creation_clause(C,_t);
  1726. R=(T0*)C;
  1727. }
  1728. else {
  1729. {T362*n=malloc(sizeof(*n));
  1730. *n=M362;
  1731. r362make(n,(((T362*)C))->_start_position/*8*/,(((T362*)C))->_writable/*12*/);
  1732. R=(T0*)n;
  1733. }
  1734. R=r362to_runnable(((T362*)R),a1);
  1735. }
  1736. /*FI*/return R;
  1737. }
  1738. T0* r362current_type(T362* C){
  1739. T0* R=NULL;
  1740. /*IF*/if (((((T362*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  1741. R=(((T592*)((T592*)((((T362*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  1742. }
  1743. /*FI*/return R;
  1744. }
  1745. /*No:CREATION_CALL_1.run_compound*/
  1746. /*No:CREATION_CALL_1.compile_to_jvm0*/
  1747. void r362compile_to_jvm(T362* C){
  1748. T0* _t=NULL;
  1749. _t=X291run_type(X662result_type((((T362*)C))->_writable/*12*/));
  1750. /*[IRF3.6compile_to_jvm0*/{T0* b1=_t;
  1751. r355jvm_push_default(((T355*)(X291run_class(b1))));
  1752. }/*]*/
  1753. X291jvm_check_class_invariant(_t);
  1754. X662jvm_assign((((T362*)C))->_writable/*12*/);
  1755. }
  1756. int r362is_pre_computable(T362* C){
  1757. int R=0;
  1758. R=X662is_result((((T362*)C))->_writable/*12*/);
  1759. return R;
  1760. }
  1761. int r362use_current(T362* C){
  1762. int R=0;
  1763. R=X662use_current((((T362*)C))->_writable/*12*/);
  1764. return R;
  1765. }
  1766. void r362check_writable(T362* C,T0* a1){
  1767. T0* _w=NULL;
  1768. C->_run_compound=a1;
  1769. _w=X662to_runnable((((T362*)C))->_writable/*12*/,r362current_type(C));
  1770. /*IF*/if ((_w)==((void*)(NULL))) {
  1771. r683add_position(X662start_position((((T362*)C))->_writable/*12*/));
  1772. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_747);
  1773. r683fatal_error(((T683*)(oBC364eh)),b1);
  1774. }/*]*/
  1775. }
  1776. else {
  1777. C->_writable=_w;
  1778. }
  1779. /*FI*/}
  1780. void r362error(T0* a1,T0* a2){
  1781. r683add_position(a1);
  1782. r683error(((T683*)(oBC364eh)),a2);
  1783. }
  1784. /*No:CREATION_CALL_1.fatal_error*/
  1785. /*No:CREATION_CALL_1.end_mark_comment*/
  1786. /*No:CREATION_CALL_1.afd_check*/
  1787.  
  1788.